Python - 2º/2015
Integrante do Grupo - Hugo Fagundes - 14/0082891 - Jadiel Teófilo de Oliveira - 14/0022911 - Eduardo Shindi Nanami - 14/0038540 - Renan Lobato Rheinboldt - 12/0077400 - Renan Rocha Reboredo - 13/0131865 Slides http://www.mediafire.com/view/n56ljxl3lxdjd9b/Projeto_LP_2-2015_%281%29.pdf Sobre a Linguagem Visão geral Python é uma linguagem de programação de alto nível, interpretada, imperativa, orientada a objetos, funcional, de tipagem forte e dinâmica. A linguagem e seu interpretador estão disponíveis para as mais diversas plataformas, desde Unix (Linux, FreeBSD, Solaris, MacOS X, etc.), Windows, .NET, versões antigas de MacOS até consoles de jogos eletrônicos ou mesmo alguns celulares, como a série 60, N8xx(PyMaemo) da Nokia e palmtops. Para algum sistema operacional não suportado, basta que exista um compilador C disponível e gerar o Python a partir do fonte. O código fonte é traduzido pelo interpretador para o formato bytecode, que é multiplataforma e pode ser executado e distribuído sem fonte original. História e criação Criada por Guido Van Rossum, em 1991, ao enxergar a necessidade de um linguagem de programação que fosse possível implementar programas intermediários entre linguagem C e o Shell Script. Logo a linguagem Python foi muito inspirada na linguagem ABC em 1987, quando teve o contato com essa linguagem no grupo Amoeba. Ao dar um nome pra linguagem Guido não queria algo comum ou simples, ele queria algo impactante. Em 1994 surgiu o medo de Guido falecer por qualquer motivo, visto que a linguagem era desenvolvida práticamente por ele sozinho e ele quem tomava as decisões, e o medo era alimentado de a linguagem morrer com o seu criador. Foi a partir daí que se iniciou a primeira comunidade do Python. Nesse mesmo ano ocorreu o primeiro Workshop de Python, com apenas 20 pessoas, sendo essas pessoas a maioria dos atuais desenvolvedores da linguagem. Já em 1999, com o sucesso da linguagem foi criado um modelo para se obter patrocícios para o desenvolvimento da linguagem. Ao se "aliarem" à BeOpen.com em 2000 foi possível evoluir a linguagem para 2.0. Em 2001 foi criada a Python Software Foundation (PSF), uma organização sem fins lucrativos constituída por membros da equipe de desenvolvimento (daquela época) e por Eric Raymond. Ela tem como objetivo ser dona de qualquer propriedade intelectual relacionada ao Python, e como missão promover e proteger o avanço da linguagem Python, além suportar e auxiliar o crescimento de comunidades de programadores Python. Após a criação da PSF todas as releases desde a 2.1 foram feitas utilizando a PSF License Agreement, uma licença que atribui todos os direitos do Python à PSF. A partir dessa época foram se perdendo os relatos quanto à linguagem, visto que o criador da linguagem parou com o desenvolvimento da linguagem e os direitos se tornaram da PSF. Versões da Linguagem 0.9 e derivadas de 1991 à 1993 1.0 e 1.1 e derivadas em 1994 1.2 e 1.3 em 1995 1.4 em 1996, 97 e 98 1.5 em 1997 e 1998 1.6 em 2000 2.0 em 2000 2.1 em 2001 2.2 em 2001, 2002 2.3 em 2003 2.4 em 2004 e 2005 2.5 em 2006 e 2007 2.6 em 2008 3.0 em 2008 Domínios de Aplicação A linguagem Python tem sua abraangência de funcionalidades praticamente ilimitada, porém é mais comum utilizada em algumas áreas: - Programação de sistemas - GUIs - Scripts de Internet - Integração de componentes - Programação de banco de dados - Composição rápida de protótipos Palavras reservadas and del from not while as elif global or with assert else if pass yield break except import print class exec in raise continue finally is return def for lambda try Operadores matemáticos + adição - subtração / divisão inteira: argumentos inteiros % resto da divisão inteira * multiplicação ** exponenciação Operadores Condicionais igualdade != diferente de < menor que > maior que >= maior ou igual que <= menor ou igual que Tratamento de exeções try: #Code except (tipos_de_exceção ...): #Exceção Frameworks mais utilizados * Django - Desenvolvimento ágil WEB * Pylons - Desenvolvimento WEB * TurboGears - Desenvolvimento WEB * Pygame - Desenvolvimento de Jogos * Twisted - Aplicações de rede em desenvolvimento WEB * Plone - Gerenciamento de counteúdo, desenvolvimento WEB * SQLObject - Banco de dados Interfaces gráficas * Etk - interface para a biblioteca EFL * PyGTK - interface para a biblioteca GTK * PyQT - interface para a biblioteca Qt * Tkinter - Módulo padrão para GUI no Python * wxPython - interface para a biblioteca wxWidgets * Wax - Construído para simplificar o uso do wxPython * Kivy - Biblioteca para a construção de aplicativos multiplataforma Critérios de avaliação * Legibilidade O Python é uma linguagem bastante legível, visto que teve sua inspiração na linguagem didática 'ABC'. O Python usa o nível de indentação no início de cada linha para definir blocos de código, dispensando a utilização de chaves ou de outros indicadores de início e fim de bloco. Só de ter identação obrigatória já eleva o nível da legibilidade da linguagem. * Capacidade de escrita Capacidade de escrita é o grau de facilidade que determinado programador encontra em desenvolver um software em um domínio específico. Para o seu domínio Python apresenta uma excelente capacidade de escrita. Tal fato se deve aos seguintes tópicos -Simplicidade - Ortogonalidade - Suporte para abstração - Expressividade * Abstração Python permite que uma função tenha como um parâmetro ou retorno uma outra função, abrindo as portas para implementação de novos tipos abstratos de dados. Como um exemplo a função map, igualmente na linguagem Haskell. Exemplo: >>> map(math.sqrt, 9, 25, 81) 3, 5, 9 * Expressividade Enfatiza a importância do esforço do programador sobre o esforço computacional. Prioriza a legibilidade do código sobre a velocidade ou expressividade. * Custo da linguagem - Custo de treinamento e para escrever programas O custo de treinamento é o custo para escrever programas, em Python ele é baixo, uma vez que a que capacidade de escrita e a legibilidade é alta. O tempo do entendimento de códigos exemplos na aprendizagem e o para a manuteabilidade é baixo, otimizando o tempo de desenvolvimento. - Custo de compilação O custo de interpretação da linguagem Python é alto. As instruções do código-fonte é traduzido em um formato intermediário conhecido como byte-code e depois esse byte-code é quem é interpretado. - Custo de execução Não muito barata, pelo mesmo motivo do custo de compilação. - Portabilidade Alta. Projeto * Descrição: Interceptação e análise de dados transmitidos por redes. * Motivação: Monitoramento do acesso de determinado usuário. * Linguagem de programação utilizada: Python * Ferramentas utilizadas: ** PyQt4 ** Scapy ** BeautifulSoup ** Urllib2 ** Threads ** Sqlite3 * Justificativa da utilização da linguagem ** Tratamento de dados web ** Processamento de String ** Quantidade de bibliotecas * Metodologia: ** Devido o grau de complexidade do projeto não foi adotada uma metodologia formal. ** Reunião de planejamento. ** Etapas definidas (Brainstorming, pesquisa, implementação, artefatos finais). ** Reuniões ao final de cada etapa. ** Utilização de ferramenta modelo kanban(trello). Código fonte http://www.mediafire.com/download/j3u3socdd0dsy64/Projeto.rar Referencias # HISTORY (em inglês) Python Software Foundation Fonte do Python. Visitado em 2008-06-05. # Ir para cima↑ Python 3.5.0 (em inglês) (13 de setembro de 2015). Visitado em 16 de outubro de 2015. # Guido van Rossum (Maio de 1996). Foreword for "Programming Python" (1st ed.) (em inglês) Python Software Foundation. Visitado em 12 de junho de 2008. # The Making of Python (em inglês) Artima Developer. Visitado em 2007-03-22. # http://mindbending.org/pt/a-historia-do-python # DOWNEY, Allen B., Python for Software Design: How to Think Like a Computer Scientist 1 ed. # SEBESTA, Robert W., Concepts of Programming Languages 7 ed. # Naomi Hamilton (5 de agosto de 2008). The A-Z of Programming Languages: Python (em inglês) Computerworld. Visitado em 17 de agosto de 2008.